<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>生命周期函数</title>
    <!-- 1. 导入 Vue 插件 -->
    <script src="./js/vue@3.5.13.js"></script>
</head>
<body>
    <!-- 2.准备容器 -->
    <div id="app">
        <button>-</button>
        {{ num }}
        <button @click="num++">+</button>
    </div>
    <script>
        // 3. 解构 vue 函数
        const { createApp, ref, onBeforeMount, onMounted, onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted } = Vue
        // 4. 创建 Vue 实例
        createApp({
            setup(){
                const num = ref(0)
                // 1. 创建阶段 ：setup
                // 2. 挂载阶段
                onBeforeMount(() => {   // 挂载之前
                    console.log("在挂载之前创建");
                })
                onMounted(() => {   // 在挂载之后创建
                    console.log("在挂载之后创建");
                })
                // 3. 更新阶段
                onBeforeUpdate(() => {  // 在更新之前创建
                    console.log("在更新之前创建");
                })
                onUpdated(() => { // 在更新之后创建
                    console.log("在更新之后创建");
                })
                // 4. 销毁阶段
                onBeforeUnmount(() => {    // 在销毁之前创建
                    console.log("在销毁之前创建");
                })
                onUnmounted(() =>{  // 在销毁之后创建
                    console.log("在销毁之后创建");
                })
                return{ num }
            }
        }).mount("#app") // 5. 挂载容器
    </script>
</body>
</html>